gh!!CTLRTIMEHSESESECMISCREEROFFSEPLAXDYOLXLROXYYMOLCCHRSEPPMBASDLISCVA@@@  !"#$..- SHOOT BLOCKS GAME - BY JEFFREY STANTON AF:A,&@&&9@,9@,9@, A22PUT RANDOM BLOCK ON SCREEN ONCE EVERY SECOND!@ !@ F:@,"AD!@ !@UP TIMER & PRINT"AA6-%@ @A 6-%@6- @A$=6-%@6-/@w=STOP ATRACT @A()6-%@6-)6-E%AP%@/%AR%@E%AS%@ H:,!?PAp%%6-P:H:,$@%@,6-@@$%8,%@+ 6-8,6-8,+&"@A0%@%%@@ 68,-8,%@  AD%%6-P:H:,$@%@,6-@@$%8,&@+ 6-8,6-8,+&"@Ap"%@,%&@@168,-8,&@5((CHECK IF ANY NEW BLOCK HITS PLAYER6= F:B2R,!@A =PLAYER 0 AGAINST PLAYFIELD;= F:B2S,@AD=PLAYER 1 AGAINST PLAYFIELD?""SQUASH PLAYER - SINGLE WIDTH@"A"AEB2W)B2I%@EMOVES PLAYER 1 RT 8 UNITSBB2VE-@A J AW,,READ JOYSTICK & CALCULATE NEW POSITIONX6-R:,Y"@A`Z7"@6-%@+6-%@76-@[)"@6-%@)6-@\7"@6-%@+6-&@76-@]"@6-&@^7"@6-&@+6-&@76-_)"@6-&@)6-`7"@ 6-%@+6-&@76-a"@6-%@g<<SET UP CORRECT PLAYER PLOT & CHECK DOESN'T EXIT SCREENh!@2Adj6-@2 Ahl AAhn6-Ap!@FArr6-@F At AAv6-A|+"@6-@!6-+ A~ 6-6-@((6-?:A6<<@0<<<,((6-?:A6<@<@0<<<, 6-//CHECK IF PLAYER HITS ANY BLOCK AFTER MOVE? F:B2R,!@A?PLAYER 0 AGAINST PLAYFIELD 1? F:B2S,@A?PLAYER 1 AGAINST PLAYFIELD 1""SQUASH PLAYER - SINGLE WIDTH"A"EB2W)B2I%@EMOVES PLAYER 1 RT 8 UNITSB2V-@A  AFIRE MISSILE T:,A -@@6?%#2@# @w6-P:+&@,'@,"Ap6-%@6-%@-@A6-%@((6-?:A6<@<@<<<, 6-!AA F:B2H,!A  A 6-6-%@-@A6-&@((6-?:A6<@<@<<<, 6- @GA F:B2H,!A  ATO REMOVE SHOT BLOCK6-P:+&@,'@, -@6?P#2@ @# 0B2x0CLEAR COLLISION REGISTER"@A` 6-8, "6@A6-@@$%%&%&@*68,-8,&@+!B2x!6-@,G.6-?:A6<@<@<<<@,GREMOVE MISSILE TO EDGE- 6- A0 6-8,5"@@A:6-@@$%D%N%%@S68,-8,%@T!B2x!6-@UG.6-?:A6<@<@<<<@,GREMOVE MISSILE TO EDGEV 6-X A 6-F:A, 6-$AV(6-F:A,%@(6-$AV+@%@%%6-F:A`,%F:Aa,$AV$$CHANGE DISPLAY LIST TO ANTIC 5-@"% POKE IN PM ROUTINE--AP")A6%- POKE IN PM CLEAR ROUTINE --@%")A%- #//POKE IN HOR DISPLAY LIST INTERUPT ROUTINE$--@A")A(%- ..-A*%F:BsD%,. 3HHREWRITE 1ST CHARACTER; NOTE 1ST CHARACTER IS NOT THE 0TH CHARACTER8+-%@%@'Ap+ sSET UP SCREENt%%6-F:@,%F:@,$AV~'-@@'0TH ROW EMPTY-@6-@@$%%@ -@(@96-@@$%%@   READ TIME DATA LINE/-@"+%A@%/ 6-A6--@@%68,-@!68,-@(% AVIAA'A@IVECTOR TO CODE LOCATION FOR DLI4BBA4ENABLE DISPLAY LIST INTERUPTACTIVATE P/M6-@ 0@/AY@b/SET DMACTL -SINGLE LINE4B2w@4SET GRACTL -PLAYERS&MISSILES6-?:A<,(>B2V@'B2W@>PLAYERS DOUBLE WIDTH-.B2`@.MISSILE 0 DOUBLE WIDTH27AA'AA7PLAYER COLORS7#BBy#TELL ANTIC PMBASE<5A5POKE HI BYTE PMBASE INTO SUBROUTINEF?6-@P6-@P'6-@36-A%?6-A%O$$READ PM DATA INTO STORAGE AREAP-@)Z"% d-@)n"%@d% x22SELECT KEY CHANGES LEVEL & START BEGINS GAMEy TIMER=195 SLOW 1 SEC/BLOCKz""TIMER=225 FAST 1/2 SEC/BLOCK{* MARKS DIFFICULT LEVEL} F:B2y,@A 9"A6-A%/%A@@9 A /"A%6-A/%A@ F:B2y,"@AP%-@@ % A ARESET SCREEN FOR REPLAY-@@-@6-@@$%%@ -@@'6-@@$%"%, 6-@(@9@6-@@$%J%@T   ^-@@h%68,-@!68,-@(% r,,RESET PLAYER TO DOUBLE WIDTH AT CENTER6B2V@'B2W@6DOUBLE WIDTH?6-@6-A%'6-@P36-@?6-A%36-6-'6-36-E%AP%@/%AR%@E%AS%@((6-?:A6<<@0<<<,((6-?:A6<@<@0<<<,'B2x'CLEAR COLLISION ADISPLAY LIST DATAPP112,112,112,69,128,145,133,133,133,133,133,133,133,133,133,133,7,65,96,145'PLAYER SUBROUTINE DATA'AA104,162,0,104,104,157,145,6,232,224,5,208,246,173,149,6,174'145,6,157,0,208,173,150,6'AA133,213,24,105,4,133,207,173,145,6,201,4,176,47,170,189,133' 6,133,212,202,48,4,230,207$'??208,249,173,147,6,133,206,169,0,168,145,206,200,204,146,6)'%%144,248,173,148,6,133,206,160,0.'??177,212,145,206,200,204,146,6,144,246,96,56,233,4,170,1983'%%207,173,147,6,133,206,160,0,1778'BB206,61,137,6,145,206,200,204,146,6,144,243,173,148,6,133,206=' 160,0,177,206,29,141,6,145B'>>206,200,204,146,6,144,243,96,0,64,128,192,252,243,207,63G'3,12,48,192,0,0,0,0,0,0U' CLEAR PM AREA ROUTINE DATAV'??104,104,133,213,104,133,212,162,0,160,0,169,0,145,212,200['**208,251,230,213,232,224,8,144,240,96_'##HOR DISPLAY LIST ROUTINE DATA`'5572,138,72,173,11,212,201,32,176,5,169,0,141,223e'**6,174,223,6,189,224,6,141,23,208,238j'223,6,104,170,104,64,0n'COLOR DATA IN ROUTINEo'))68,148,20,242,36,180,116,52,164,100s'"TIME 0:00" DATAt'))0,0,0,0,0,52,41,45,37,0,16,26,16,16y'PLAYER DATA~'2224,24,126,126,24,24,56,56,24,24,8,8,28,28,28'..28,252,252,60,60,28,28,8,8,8,8,8,8,56,56'4424,24,126,126,24,24,28,28,24,24,16,16,56,56,56'2256,63,63,60,60,56,56,16,16,16,16,16,16,28,28 D8:SHOOT.BAS